Например, Бобцов

Стохастическое тестирование программного обеспечения для поиска уязвимостей

Аннотация:

Предмет исследования. Стохастическое тестирование при помощи фаззеров является одним из способов поиска уязвимостей в программном обеспечении. Процесс тестирования в общем случае представляет собой генерацию случайных входных данных для исследуемой программы и может занимать значительное время. Снижение времени тестирования — актуальная задача. Одно из направлений улучшения процесса генерации — выделение только тех последовательностей данных, которые значительно влияют на пути выполнения тестируемой программы. Таким образом, новый подход к формированию входных данных, для снижения общего времени тестирования, позволит найти большее количество уязвимостей программ. Метод. Предложена модификация генетического алгоритма, используемого популярным фаззером afl (American Fuzzy Lop). Для повышения эффективности генерации входных данных предложена модель перспективных позиций. В модели производится выбор наиболее перспективной с точки зрения обнаружения уязвимости позиции входных данных для дальнейших мутаций с использованием генетического алгоритма фаззера. В отличие от существующих подходов, представленная модель учитывает перспективность конкретного элемента входных данных для увеличения покрытия кода тестом и по данной причине направляет генетический алгоритм на изменение именно этой позиции. Основные результаты. Выполнено сравнение эффективности разработанной модели с популярным фаззером afl и его модификациями (aflfast, symfuzz, afl-rb). В ходе экспериментального исследования модель позволяет достичь в среднем на 21 % большее покрытие кода, чем другие представленные решения. Покрытие ветвей исполнения между базовыми блоками кода программы увеличено с 20 897,3 до 17 267,4. Практическая значимость. Предложенная модель может быть применена при тестировании программного обеспечения, предполагающего ввод и обработку пользовательских данных. При этом требуемые изменения необходимы только в компоненте генератора псевдослучайных чисел и не затрагивают весь инструмент автоматизированного тестирования.

Ключевые слова:

Статьи в номере